home *** CD-ROM | disk | FTP | other *** search
- #define DEBUG 0
-
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <snd.h>
- #include <winb.h>
- #include <te.h>
- #include <fntb.h>
- #include <gui.h>
- #include <egb.h>
- #include <file_dlg.h>
- #include <guidbg.h>
- #include "igo.h"
- #include "banx.h"
- #include "kifuctrl.h"
- #include "kiffile.h"
- #include "title.h"
-
- char *guiEgbPtr ; /* EGB のワークアドレス */
- char guiSndPtr[16*1024] ; /* SND のワークアドレス */
-
- int exitFuncRet;
-
- int userFunc(int apliId, int messId, int data)
- {
- register int ret;
- extern int deskTopBtnId[];
-
- ret = ILLEGAL_FUNCTION;
-
- switch(messId){
- case GM_QUIT:{
- MMI_SendMessage(deskTopBtnId[1], MM_EXEC, 2, 0, 0) ;
- ret = exitFuncRet;
- break;
- }
- }
- return ret;
-
- }
-
- void main()
- {
- extern int APL_init() ;
-
-
- MMICTRL ctrl ;
- #if DEBUG
- debugprint("main start !\n");
- debugprint("MMI_initHyper = %d!\n", MMI_initHyper);
- #endif
-
-
- /* ダイアログの移動範囲を設定するために、 MMI_Open関数 */
- /* の引数を使用します。通常の移動範囲ならば引数の指定 */
- /* は、 NULL で大丈夫です。 */
-
- ctrl.page0 = SCREEN16 ; /* 16色2画面に設定する */
- ctrl.page1 = SCREENUNUSED ;
- ctrl.writePage = 0 ; /* page0 を書き込みページ */
- ctrl.displayPage = 1 ; /* ペ-ジ0画面表示 */
- ctrl.priority = 0 ;
- ctrl.mode = SCREENAVAILABLE; /* 16色モードに設定する */
- ctrl.width = SCREENEXPAND; /* 画面モード3 では512 */
- ctrl.size = 0 ; /* メモリの初期化は */
- ctrl.ptr = NULL ; /* GUIライブラリに任せる */
- ctrl.asize = 0 ; /* アプリケーションで必要とする */
- ctrl.aptr = NULL ; /* 初期メモリは無し */
- ctrl.move.lupx = -16384 ;
- ctrl.move.lupy = 22 ;
- ctrl.move.rdwx = 16383 ;
- ctrl.move.rdwy = 16383 ;
- ctrl.white = 15 ; /* 白色は 15 番 */
- ctrl.black = 8 ; /* 黒色は 8 番 */
- ctrl.gray = 7 ; /* 灰色は 7 番 */
- ctrl.xor = 7 ; /* 反転色は 14 番 */
-
- /* 初期化処理 */
- if (MMI_Open( &ctrl ) == NOERR)
- {
- #if DEBUG
- debugprint("APL_init start !\n");
- #endif
- /* 初期化に成功すればメインループに入る. */
- if (APL_init() == NOERR){
- /* ファイルダイアログ関係の初期化処理 */
- /* カレントディレクトリを保存する */
- /*
- FDG_SaveCurDir() ;
- */
- /* ファイルダイアログの初期化 */
- FDG_InitFileDlg() ;
-
- MMI_ExecSystem() ;
-
- /* ファイルダイアログ関係の終了処理 */
- /* メモリ開放 */
- FDG_FreeFileDlg() ;
- /* カレントディレクトリを復帰する */
- /*
- FDG_RecovCurDir() ;
- */
- }
- }
-
- /* 終了処理 */
- MMI_Close() ;
-
- }
-
- int APL_init()
- {
- extern MMIINIT initDataMIABOU ;
- extern MMIINIT initDataMIHANDY ;
- extern MMIINIT initDataMITITLE ;
- extern MMIINIT initDataMIAUTO ;
- extern MMIINIT initDataMIWARN ;
- extern MMIINIT initDataMICOMMNT ;
- extern MMIINIT initDataMIPRINT ;
- extern MMIINIT initDataMILINE ;
- extern MMIINIT initDataMIFSAVE ;
- extern MMIINIT initDataMISSAVE ;
- extern MMIINIT initDataMIJUDGE ;
- extern MMIINIT initDataMIBAN ;
- extern MMIINIT initDataMINOTE ;
- extern MMIINIT initDataMIMENU ;
- extern MMIINIT initDataMICHECK ;
-
- /* サイドワークの登録に使う部品の外部宣言 */
- extern int mitemBarId[] ;
-
- register int ret ;
- BAN_TYPE ban_type;
-
- /* EGB ワークアドレスの取得. */
- guiEgbPtr = MMI_GetEgbPtr() ;
-
- #if DEBUG
- debugprint("MMI_initHyper()\n");
- debugprint("MMI_initHyper = %d!\n", MMI_initHyper);
- #endif
- /* ハイパ型部品の初期化 */
- if ((ret = MMI_initHyper()) < 0)
- return ret ;
- #if DEBUG
- debugprint("MMI_initDialogL40()\n");
- #endif
- /* ダイアログ型部品の初期化 */
- if ((ret = MMI_initDialogL40()) < 0)
- return ret ;
- #if DEBUG
- debugprint("MMI_initAlertL40() start !\n");
- #endif
- /* アラート型部品の初期化 */
- if ((ret = MMI_initAlertL40()) < 0)
- return ret ;
- /* ウインドウ型部品の初期化 */
- if ((ret = MMI_initWindowL40()) < 0)
- return ret ;
- /* メッセージ型部品の初期化 */
- if ((ret = MMI_initMessageL40()) < 0)
- return ret ;
- /* メニュー型部品の初期化 */
- if ((ret = MMI_initMenuL40()) < 0)
- return ret ;
- /* ボタン型部品の初期化 */
- if ((ret = MMI_initButtonL40()) < 0)
- return ret ;
- #if DEBUG
- debugprint("MMI_initDrawButtonL40() start !\n");
- #endif
- /* ドロウボタン型部品の初期化 */
- if ((ret = MMI_initDrawButtonL40()) < 0)
- return ret ;
- /* アイコンボタン型部品の初期化 */
- if ((ret = MMI_initIconL40()) < 0)
- return ret ;
- /* トグルアイコン型部品の初期化 */
- if ((ret = MMI_initToggleIconL40()) < 0)
- return ret ;
- /* メニューアイテム型部品の初期化 */
- if ((ret = MMI_initMenuItemL40()) < 0)
- return ret ;
- /* スクロールバー型部品の初期化 */
- if ((ret = MMI_initScrollBarL40()) < 0)
- return ret ;
- /* テキスト型部品の初期化 */
- if ((ret = MMI_initTextL40()) < 0)
- return ret ;
- /* 数値入力型部品の初期化 */
- if ((ret = MMI_initNumBoxL40()) < 0)
- return ret ;
- /* ファイルダイアログを使うときはリストメニューの初期化も必要 */
- /* リストメニュー型部品の初期化 */
- if ((ret = MMI_initListMenuL40()) < 0)
- return ret ;
-
- #if DEBUG
- debugprint("MMI_SetUpVisualEffect()\n");
- #endif
-
- /* データの登録 */
- if ((ret = MMI_Init(&initDataMIABOU)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMIHANDY)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMITITLE)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMIAUTO)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMIWARN)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMICOMMNT)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMIPRINT)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMILINE)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMIFSAVE)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMISSAVE)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMIJUDGE)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMIBAN)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMINOTE)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMIMENU)) < 0)
- return ret ;
-
- if ((ret = MMI_Init(&initDataMICHECK)) < 0)
- return ret ;
-
- MMI_SendMessage(MMI_GetBaseObj(), MM_SETEXEC, 1, userFunc);
-
- MMI_CallMessage(MMI_GetApliId(), GM_TITLE, (int)"囲碁棋譜記録プログラム", 0);
-
- /* 背景を表示する */
- MMI_SendMessage(MMI_GetBaseObj(), MM_SHOW, 0) ;
-
- /* SIDEWORKメニューを登録する */
- MMI_SetUpPrgMenu( mitemBarId[0] , -1 ) ;
- MMI_SetUpSDKMenu( mitemBarId[0] , -1 ) ;
-
- title_init();
- /* 背景データの初期化 */
- ban_type.type = NORMAL;
- ban_type.size = 19;
- ban_type.size2 = 0;
- title_bantype_set( ban_type); /* この処理はban_initでやるべきか? */
-
- kifu_init();
- henkan_init();
-
- igo_init();
-
- return NOERR ;
- }
-